home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_09_02 / 9n02034a < prev    next >
Text File  |  1990-11-10  |  845b  |  50 lines

  1.  
  2. Listing 1.
  3.  
  4. /* skiplist.h */
  5.  
  6. #ifndef MAXLEVEL
  7. #define MAXLEVEL    16  /* must be a constant */
  8. #endif
  9. #ifndef PARTITION
  10. #define PARTITION   4   /* probably always a constant */
  11. #endif
  12.  
  13. #ifdef SLTEST
  14. int intcmp();
  15. #define KEYTYPE int
  16. #define COMPARE intcmp
  17. #define DMAX    maxlevel    /* the denominator */
  18. #define NMAX    partition   /* the numerator */
  19. #else
  20. #define DMAX    MAXLEVEL
  21. #define NMAX    PARTITION
  22. #endif
  23.  
  24. struct node {
  25.     union {
  26.         KEYTYPE key;
  27.         int level;
  28.     } korl;
  29.     struct node *pointers[1];
  30. };
  31.  
  32. #define NODE struct node
  33. #define NIL (NODE *)NULL
  34.  
  35. #ifndef TRUE
  36. #define TRUE    1
  37. #endif
  38. #ifndef FALSE
  39. #define FALSE   0
  40. #endif
  41.  
  42. /* declare skiplist.c routines */
  43. NODE *newlist();
  44. NODE *search();
  45. NODE *insert();
  46. int delete();
  47. NODE *newnode();
  48. int randomlevel();
  49.  
  50.